package org.p2psimulator.entity.protocol.messages;

public enum MessageTypes {

	// general message types
	QUERY_MESSAGE("QueryMessage"),
	QUERY_HIT_MESSAGE("QueryHitMessage"),
	DOWNLOAD_REQUEST_MESSAGE("DonwloadRequestMessage"),
	DOWNLOAD_ANSWARE_MESSAGE("DownloadAnswerMessage"),

	//Gnutella additional  messages
	PING_MESSAGE("PingMessage"),
	PONG_MESSAGE("PongMessage"),

	//Xrep additional messages
	XREP_POLL("XrepPoll"),
	XREP_POLLREPLY("XrepPollReply"),
	XREP_TRUEVOTE ("XrepTrueVote"),
	XREP_TRUEVOTEREPLY("XrepTrueVoteReply"),

	//P2PRep additional messages
	P2P_POLL("P2PPoll"),
	P2P_POLLREPLY("P2PPollReply"),
	P2P_TRUEVOTE ("P2PTrueVote"),
	P2P_TRUEVOTEREPLY("P2PTrueVoteReply"),

	//Bayesian additional Messages
	BAYESIAN_FHI("BayesianFHI"),

	//Chord additional Messages
	CHORD_FINDSUCESSOR ("FindSucessor"),
	CHORD_SUCESSORHERE ("SucessorHere"),
	CHORD_NEWPREDECESSOR ("NewPredecessor"),
	CHORD_YOURPREDECESSOR ("YourPredecessor"),
	CHORD_MYPREDECESSOR ("MyPredecessor"),
	CHORD_QUERY("ChordQuery"),
	CHORD_QUERYHIT("ChordQueryHit"),
	CHORD_FILEOWNER("ChordFileOwner"),
	CHORD_IAMALIVE ("IamAlive"),
	CHORD_AREYOUALIVE ("AreYouAlive"),
	CHORD_KEEPFILEKY ("KeepThisFileKey"),

	EIGEN_REQUESTOPINION("RequestOpinion"),
	EIGEN_OPINION("EigenOpinion"),
	EIGEN_PUBLISH_REPUTATION("PublishOpinion"),


        STORM_UPDATEWITNESSES("UpdateWitnesses"),
        STORM_CREATEWITNESSESRING("CreateWitnessesRing"),
        STORM_JOINWITNESSESRING("JoinWitnessesRing"),
       STORM_FINDWITNESS("FindWitness"),
       STORM_WITNESSFOUND("WitnessFound");


	private String name;

	MessageTypes(String name) {
		this.name = name;
	}

	public String getName(){
		return this.name;
	}


}
